針對昨天文章 subaru219 的留言,
因為網站的規則,我現階段沒辦法留言和回覆,因此在這裡回覆您!
謝謝您提出的想法! 在更早之前我也有想過這個問題,
為了找出有隱藏關聯的券商分點
。(感覺這方法很有趣,但不一定會真的有效)
隔日沖
我覺得比較像是意外事件
。
面對意外事件,單純用模型來分析可能需要更多的資料,
也可能不需要用到 convLSTM ,單純用 LSTM 訓練籌碼資料就可以學習到隔日沖的規則。
如果要實際進行股票買賣的話,我覺得搭配個人的交易策略來應對會更加合適。
另外,針對建議"透過買賣超張數去預測隔日的股價",
一開始我腦袋浮現的想法,是用"股價資料預測股價"、"籌碼資料預測籌碼",
不過這個建議很有道理,這樣才能建立起籌碼跟股價之間的關聯性。
如果要修正的話,
我可能要思考一下如何安排資料的形狀和欄位,模型也可能更換成其他。
例如將地理特徵和籌碼特徵放在一起,再進行資料轉置。
這邊用python寫策略有一種原生的感覺,也比起用一般的網站平台提供的策略回測工具還要辛苦,
不過會有一種特別的成就感,而且有一種可以隨身攜帶的感覺(就存在自己的電腦或雲端空間)。
這邊撰寫策略是延續 DAY10-繪製K線圖 繼續寫下去,
裡面的程式碼和變數一樣,就不貼過來這邊,會影響文章的整潔度。
交易策略
->策略發動的訊號
->進行回測
->計算績效
,最後再看要不要視覺化。短MA
,長期平均線為長MA
)。# 這個函式用來計算移動平均線 (data 可以放股票收盤價,window 控制均線計算的時間區間要多長)
def moving_average(data, window):
return data.rolling(window=window).mean()
# 用短期移動平均和長期移動平均來產生雙均線策略的交易訊號
def generate_signals(data, short_window, long_window):
signals = pd.DataFrame(index=data.index)
signals['price'] = data['Close'] #用每天的收盤價
signals['short_mavg'] = moving_average(data['Close'], short_window) #短期移動平均線
signals['long_mavg'] = moving_average(data['Close'], long_window) #長期移動平均線
signals['signal'] = 0.0 #把交易訊號初始化
# 1-> 買進, 0-> 持有、賣出
signals['signal'][short_window:] = np.where(signals['short_mavg'][short_window:] > signals['long_mavg'][short_window:], 1.0, 0.0)
# 訊號的狀態,+1 表示新的買入訊號,-1 表示新的賣出訊號
signals['positions'] = signals['signal'].diff()
return signals
看一下寫好的訊號長什麼樣子
# 這邊短MA設為40天,MA40;長MA設為100天,MA100
signals = generate_signals(all_data, short_window=40, long_window=100)
signals
KeyError: 'Close'
---> signals = generate_signals(all_data, short_window=40, long_window=100)
找不到 close 收盤價! 難道是欄位名稱不對嗎@@
但是上面的程式都正常執行,暫時抓不出bug在哪,可能要把data都印出來看一下。
今天都在跑研究的東西,太晚寫文章了,
明天還要上課,早上就盡速把這個錯誤排除掉,
不好意思,謝謝大家耐心地等待。
寫了這個既可以用來延續這系列的文章,
剛好自己的研究也會用到回測,一舉兩得(?
每日記錄:
加權指數收在 22185點,下跌55.12點,
交易量一直在縮,今天連三千億都不到了,有很多人都收手在觀望的樣子。
然後外資又繼續加空期貨單。